package cn.core.sign.service.intf;

import cn.core.sign.eo.Usr;
import cn.core.sign.qo.UsrQO;
import cn.core.sign.vo.UsrVO;
import cn.core.tool.util.Paging;
import cn.core.tool.util.Param;

import java.util.Collection;

/**
 * 用户 服务接口
 */
public interface IUsrService {

  /**
   * 用户 >>> 保存
   */
  public UsrVO save(UsrVO eo) throws Exception;

  /**
   * 用户 >>> 批量保存
   */
  public Collection<Usr> saveBatch(Collection<Usr> eos) throws Exception;

  /**
   * 用户 >>> 修改
   */
  public UsrVO update(UsrVO eo) throws Exception;

  /**
   * 用户 >>> 批量修改
   */
  public Collection<Usr> updateBatch(Collection<Usr> eos) throws Exception;

  /**
   * 用户 >>> 删除
   */
  public void remove(Usr eo) throws Exception;

  /**
   * 用户 >>> 批量删除
   */
  public void removeBatch(Collection<Usr> eos) throws Exception;

  /**
   * 用户 >>> 数据量
   */
  public Long count(UsrQO qo) throws Exception;

  /**
   * 用户 >>> 主键查询
   */
  public Usr pk(UsrQO qo) throws Exception;

  /**
   * 用户 >>> 查询
   */
  public Collection<Usr> query(UsrQO qo) throws Exception;

  /**
   * 用户 >>> 分页
   */
  public Paging<Usr> paging(Param<UsrQO> param) throws Exception;

  /**
   * 用户 >>> 业务数据量
   */
  public Long countVo(UsrQO qo) throws Exception;

  /**
   * 用户 >>> 业务主键查询
   */
  public UsrVO pkVo(UsrQO qo) throws Exception;

  /**
   * 用户 >>> 业务查询
   */
  public Collection<UsrVO> queryVo(UsrQO qo) throws Exception;

  /**
   * 用户 >>> 业务分页
   */
  public Paging<UsrVO> pagingVo(Param<UsrQO> param) throws Exception;

}
